#include<iostream>
#include<string>
#include<map>
#include<algorithm>
using namespace std;
typedef long long LL;
string s1;
int n, x;
map<string, int>mp;
struct S
{
	string str;
	int time;
	int id;
}s[110];
int cmp(S a, S b)
{
	if (a.time != b.time) {
		return a.time < b.time;
	}
}
int main()
{
	cin >> n;
	int cnt = 0;
	for (int i = 0; i < n; i++) {
		cin >> s1;
		cin >> x;
		if (mp[s1]) {
			s[cnt].str = s1;
			s[cnt].time = x;
			s[cnt++].id = i + 1;
		}
		else {
			s[cnt].str = s1;
			s[cnt].time = x;
			s[cnt++].id = i + 1;
			mp[s1] = 1;
		}
	}
	sort(s, s + n, cmp);
	for (int i = 0; i < n; i++) {
		cout << s[i].id << endl;
	}
	return 0;
}
//int main()
//{
//	cin >> n;
//	for (int i = 1; i <= n; i++) {
//		cin >> s[i];
//		cin >> x;
//		if (mp1[s[i]]) {
//			id[s[i]] = i;
//		}
//		else {
//			mp1[s[i]] = x;
//			id[s[i]] = i;
//		}
//	}
//	for (int i = 1; i <= n; i++) {
//		cout << id[s[i]] << endl;
//	}
//	return 0;
//}